/** 待办事项统计 */
export interface TodoStatistics {
  /** 待处理数量 */
  Pending: number;
  /** 已完成数量 */
  Completed: number;
  /** 协作数量 */
  Collaborated: number;
  /** 我创建的数量 */
  My: number;
}

// 消息通知相关接口
export interface ISysNotification {
  BillCode: string | null;
  ID?: string | null;
  Title: string | null;
  Content: string | null;
  RouteId: null;
  Route?: ISysBillRoute;
  CategoryId: null;
  Category?: ISysNotificationCategory;
  BusinessType: string | null;
  BusinessId: string | null;
  SenderName: string | null;
  ReceiverName: string | null;
  Status: '未读' | '已读';
  Priority: '低' | '普通' | '高' | '紧急';
  IsTop: boolean;
  SendTime: Date;
  ReadTime: Date | null;
}

export interface ISysNotificationVm {
  Entity: ISysNotification;
  ActionName?: string | null;
  IsMyApprove?: boolean | null;
}

export interface ISysNotificationView extends ISysNotification {
}

export interface ISysNotificationQuery {
  CategoryId?: string | null;
  Status?: string | null;
  Priority?: string | null;
  Limit?: number;
  Page?: number;
}

export interface ISysNotificationCategory {
  ID?: string | null;
  Name: string | null;
  Code: string | null;
  Description: string | null;
  Icon: string | null;
  EnableInternalMessage: boolean;
  EnableSms: boolean;
  EnableEmail: boolean;
  EnableAppPush: boolean;
  EnableWechatPush: boolean;
  EnableDingTalkPush: boolean;
  DefaultPriority: '低' | '普通' | '高' | '紧急';
  IsEnabled: boolean;
  SortOrder: number;
  ParentId: null;
  Parent?: ISysNotificationCategory;
}

export interface ISysBillRoute {
  ID?: string | null;
  Name: string | null;
  CodeType: string | null;
  Route: string | null;
}

// 员工状态统计接口
export interface EmployeeStatusStats {
  在职员工数量: number;
  待入职员工数量: number;
  待离职员工数量: number;
  待退休员工数量: number;
  试用期员工数量: number;
}

// 员工详细分布统计接口
export interface EmployeeDetailStats {
  员工年龄分布: {
    "18-29": number;
    "30-39": number;
    "40-49": number;
    "50-59": number;
    "60+": number;
  };
  员工性别分布: {
    男: number;
    女: number;
    未知: number;
  };
  在职状态分布: {
    试用期: number;
    在职: number;
    离职: number;
    退休: number;
  };
  最高学历分布: {
    "初中及以下": number;
    "高中/中专": number;
    大专: number;
    本科: number;
    "硕士及以上": number;
  };
}

// 员工统计数据完整接口
export interface EmployeeStatistics {
  statusStats: EmployeeStatusStats;
  detailStats: EmployeeDetailStats;
}